package client;

import java.awt.EventQueue;
import java.util.ArrayList;
import java.util.List;

import bean.ConnexionEJB;
import gui.FenetrePrincipale;
import service.Fichier;
import service.Fichier_Avec_Chemin;
import socket.ServeurPeerToPeer;


public class Client {
	public static List<Fichier_Avec_Chemin> fichiersPartages = new ArrayList<Fichier_Avec_Chemin>();
	public static List<Fichier> fichiersOnline = new ArrayList<Fichier>();
	public static int port = 5002;
	public static boolean isLocalhost = true;
	public static String ipServer = "25.187.16.32";
	
	
	public static void main(String[] args) {
		// On définit le thème de Swing
		try {
			for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
				if("Nimbus".equals(info.getName())) {
					javax.swing.UIManager.setLookAndFeel(info.getClassName());
					break;
				}
			}
		}
		catch (Exception e) { System.err.println("\tClient.main - Erreur : " + e.getMessage()); }
		
		// On lance l'interface graphique
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					// On lance la connexion aux EJB dans le même thread que celui qui gère le gui (sinon ça marche pas...)
					ConnexionEJB.connexion();
					FenetrePrincipale frame = new FenetrePrincipale(fichiersPartages);
					frame.setVisible(true);
				}
				catch(Exception e) { System.err.println("\tClient.main - Erreur : " + e.getMessage()); }
			}
		});
		
		// On lance le serveur socket pour les connexions pair à pair
		(new ServeurPeerToPeer(fichiersPartages)).start();
	}
}
